// 这里面存放的就是 vuex 相关的核心代码
import Vue from 'vue'
import Vuex from 'vuex'

// 插件安装
Vue.use(Vuex)

// 创建仓库
const store = new Vuex.Store({
  // 严格模式 (有利于初学者，检测不规范的代码 => 上线时需要关闭)
  strict: true,
  state:{
    title: '测试标题',
    count: 100,
    user:{
      name: '张三',
      age: 20
    },
    list: [1,2,3,4,5,6,7,8,9]
  },
  mutations:{
    addCount(state, num){
      state.count+=num
    },
    updateUser(state,user){
      state.user = user
    },
    updateUser2(state, user){
      setTimeout(()=>{
        state.user = user
      }, 1000)
    },
    changeNum(state, num) {
      state.count = num
    }
  },
  actions:{
    changeNum(context, num){
      setTimeout(()=>{
        context.commit('changeNum', num)
      }, 1000)
    }
  },
  getters:{
    getList(state){
      return state.list.filter( item => item >5)
    }
  }
})

// 导出给main.js使用
export default store
